import java.util.Arrays;

/**
 * @program: LeetCode
 * @description: LeetCode : 分糖果
 * @author: WXY
 * @create: 2023-01-20 20:54
 * @Version 1.0
 **/
public class Num135_candy {
    public static int candy(int[] ratings) {
        int[] candy = new int[ratings.length];
        Arrays.fill(candy, 1);//首先每个孩子都分一个糖果
        //如果右边孩子比左边孩子分数高，那么右边孩子比左边孩子糖果多一个  a，b ,c,d....比较b比a大，c比b大，如此比较
        for (int i = 1; i < ratings.length; i++) {
            if (ratings[i] > ratings[i - 1]) {
                candy[i] = candy[i - 1] + 1;
            }
        }
        //如果左边孩子a比右边孩子b分数高，那么左边孩子a的糖果是当前孩子a的糖果和右边孩子b糖果加一，求最大值，
        //保证，如果孩子a比两边孩子分数都高，那么孩子a的糖果比两边孩子都多。
        for (int i = ratings.length - 2; i >= 0 ; i--) {
            if (ratings[i] > ratings[i + 1]) {
                candy[i] = Math.max(candy[i], candy[i + 1] + 1);
            }
        }
        int ans = 0;
        for (int num : candy) {
            ans += num;
        }
        return ans;
    }

    public static void main(String[] args) {
        int[] arr = {1, 2,3, 2};
        int candy = candy(arr);
        System.out.println(candy);

    }
}
